.TH std::wstring_convert 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::wstring_convert \- std::wstring_convert

.SH Synopsis
   Defined in header <locale>
   template<

       class Codecvt,                            \fI(since C++11)\fP
       class Elem = wchar_t,                     (deprecated in C++17)
       class Wide_alloc = std::allocator<Elem>,  (removed in C++26)
       class Byte_alloc = std::allocator<char>

   > class wstring_convert;

   Class template std::wstring_convert performs conversions between byte string
   std::string and wide string std::basic_string<Elem>, using an individual code
   conversion facet Codecvt. std::wstring_convert assumes ownership of the conversion
   facet, and cannot use a facet managed by a locale. The standard facets suitable for
   use with std::wstring_convert are std::codecvt_utf8 for UTF-8/UCS-2 and UTF-8/UCS-4
   conversions and std::codecvt_utf8_utf16 for UTF-8/UTF-16 conversions.

.SH Member types

   Member type Definition
   byte_string std::basic_string<char, char_traits<char>, Byte_alloc>
   wide_string std::basic_string<Elem, char_traits<Elem>, Wide_alloc>
   state_type  Codecvt::state_type
   int_type    wide_string::traits_type::int_type

.SH Member functions

   constructor   constructs a new wstring_convert
                 \fI(public member function)\fP
   operator=     the copy assignment operator is deleted
                 \fI(public member function)\fP
   destructor    destructs the wstring_convert and its conversion facet
                 \fI(public member function)\fP
   from_bytes    converts a byte string into a wide string
                 \fI(public member function)\fP
   to_bytes      converts a wide string into a byte string
                 \fI(public member function)\fP
   converted     returns the number of characters successfully converted
                 \fI(public member function)\fP
   state         returns the current conversion state
                 \fI(public member function)\fP

.SH See also

  Character       locale-defined multibyte                   UTF-8                       UTF-16
 conversions          (UTF-8, GB18030)
                                                codecvt<char16_t,char,mbstate_t>
   UTF-16     mbrtoc16 / c16rtomb (with C11's   codecvt_utf8_utf16<char16_t>     N/A
              DR488)                            codecvt_utf8_utf16<char32_t>
                                                codecvt_utf8_utf16<wchar_t>
    UCS-2     c16rtomb (without C11's DR488)    codecvt_utf8<char16_t>           codecvt_utf16<char16_t>
   UTF-32     mbrtoc32 / c32rtomb               codecvt<char32_t,char,mbstate_t> codecvt_utf16<char32_t>
                                                codecvt_utf8<char32_t>
   system
  wchar_t:
              mbsrtowcs / wcsrtombs
   UTF-32     use_facet<codecvt                 codecvt_utf8<wchar_t>            codecvt_utf16<wchar_t>
(non-Windows) <wchar_t,char,mbstate_t>>(locale)
    UCS-2
  (Windows)

   wbuffer_convert       performs conversion between a byte stream buffer and a wide
   \fI(C++11)\fP               stream buffer
   (deprecated in C++17) \fI(class template)\fP
   (removed in C++26)
   codecvt_utf8
   \fI(C++11)\fP               converts between UTF-8 and UCS-2/UCS-4
   (deprecated in C++17) \fI(class template)\fP
   (removed in C++26)
   codecvt_utf8_utf16
   \fI(C++11)\fP               converts between UTF-8 and UTF-16
   (deprecated in C++17) \fI(class template)\fP
   (removed in C++26)
